//
// Created by Administrator on 2024/3/11.
//

#include<bits/stdc++.h>

using namespace std;

/**
 * @brief 递归计算波兰表达式的值
 *
 * 该函数通过递归的方式处理波兰表达式（前缀表达式），
 * 遇到数字则直接返回，遇到运算符则递归计算其操作数并进行相应的运算。
 *
 * @return double 波兰表达式计算得到的结果
 */
double f() {
    // 定义一个字符串变量，用于存储从标准输入读取的内容
    string str;
    // 从标准输入读取一个字符串
    cin >> str;
    // 创建一个字符串流对象，用于将字符串转换为数字
    istringstream iss(str);
    // 定义一个双精度浮点数变量，用于存储转换后的数字
    double x;
    // 尝试将字符串流中的内容转换为双精度浮点数
    if (iss >> x) {
        // 如果转换成功，说明输入的是一个数字，直接返回该数字
        return x;
    } else {
        // 如果转换失败，说明输入的是一个运算符，递归调用 f 函数计算左操作数
        double a = f();
        // 递归调用 f 函数计算右操作数
        double b = f();
        // 定义一个双精度浮点数变量，用于存储计算结果
        double c = 0;
        // 根据运算符进行相应的计算
        switch (str[0]) {
            // 如果是加法运算符
            case '+':
                // 执行加法运算
                c = a + b;
                break;
            // 如果是减法运算符
            case '-':
                // 执行减法运算
                c = a - b;
                break;
            // 如果是乘法运算符
            case '*':
                // 执行乘法运算
                c = a * b;
                break;
            // 如果是除法运算符
            case '/':
                // 执行除法运算
                c = a / b;
                break;
            // 如果是其他运算符，不做处理
            default:
                break;
        }
        // 返回计算结果
        return c;
    }

}

int main() {
    cout << fixed << setprecision(2) << f() << endl;

}